using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
using UwinEducation.Shared.Converters;
using UwinEducation.Shared.Enums;

namespace UwinEducation.Shared.Models
{
    /// <summary>
    /// 学生课表分页请求参数
    /// </summary>
    public class StudentSchedulePageRequest : PageRequest
    {
        /// <summary>
        /// 学生ID
        /// </summary>
        public Guid? StudentId { get; set; }

        /// <summary>
        /// 教师课表ID
        /// </summary>
        public Guid? TeacherScheduleId { get; set; }

        /// <summary>
        /// 教师课表组ID
        /// </summary>
        public Guid? TeacherScheduleGroupId { get; set; }

        /// <summary>
        /// 课表状态
        /// </summary>
        public ScheduleStatus? Status { get; set; }

        /// <summary>
        /// 开始日期
        /// </summary>
        [JsonConverter(typeof(CustomDateTimeConverter))]
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// 结束日期
        /// </summary>
        [JsonConverter(typeof(CustomDateTimeConverter))]
        public DateTime? EndDate { get; set; }
    }

    public class StudentScheduleStatisticsPageRequest : PageRequest
    {
        /// <summary>
        /// 学生ID
        /// </summary>
        [Required(ErrorMessage = "学生ID不能为空")]
        public Guid StudentId { get; set; }
        /// <summary>
        /// 缴费状态
        /// </summary>
        public PaymentStatus? PaymentStatus { get; set; }
        /// <summary>
        /// 开始时间
        /// </summary>
        [JsonConverter(typeof(CustomDateTimeConverter))]

        public DateTime? StartTime { get; set; }
        /// <summary>
        /// 结束时间
        /// </summary>
        [JsonConverter(typeof(CustomDateTimeConverter))]
        public DateTime? EndTime { get; set; }


    }
}